home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / gfx / vtdevel3.lha / Include / intuition / screens.i < prev    next >
Text File  |  1992-09-24  |  19KB  |  552 lines

  1.     IFND  INTUITION_SCREENS_I
  2. INTUITION_SCREENS_I    SET  1
  3. **
  4. **    $VER: screens.i 38.24 (24.08.92)
  5. **    Includes Release 39.108
  6. **
  7. **    The Screen and NewScreen structures and attributes
  8. **
  9. **    (C) Copyright 1985-1992 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. **
  12.     IFND EXEC_TYPES_I
  13.     INCLUDE "exec/types.i"
  14.     ENDC
  15.  
  16.     IFND GRAPHICS_GFX_I
  17.     INCLUDE "graphics/gfx.i"
  18.     ENDC
  19.  
  20.     IFND GRAPHICS_CLIP_I
  21.     INCLUDE "graphics/clip.i"
  22.     ENDC
  23.  
  24.     IFND GRAPHICS_VIEW_I
  25.     INCLUDE "graphics/view.i"
  26.     ENDC
  27.  
  28.     IFND GRAPHICS_RASTPORT_I
  29.     INCLUDE "graphics/rastport.i"
  30.     ENDC
  31.  
  32.     IFND GRAPHICS_LAYERS_I
  33.     INCLUDE "graphics/layers.i"
  34.     ENDC
  35.  
  36.     IFND UTILITY_TAGITEM_I
  37.     INCLUDE "utility/tagitem.i"
  38.     ENDC
  39.  
  40. *
  41. * NOTE:  intuition/iobsolete.i is included at the END of this file!
  42. *
  43.  
  44. ; ========================================================================
  45. ; === DrawInfo =========================================================
  46. ; ========================================================================
  47.  
  48. * This is a packet of information for graphics rendering.  It originates
  49. * with a Screen, and is gotten using GetScreenDrawInfo( screen );
  50.  
  51. * You can use the Intuition version number to tell which fields are
  52. * present in this structure.
  53. *
  54. * DRI_VERSION of 1 corresponds to V37 release.
  55. * DRI_VERSION of 2 corresponds to V39, and includes three new pens
  56. *    and the dri_CheckMark and dri_AmigaKey fields.
  57. *
  58. * Note that sometimes applications need to create their own DrawInfo
  59. * structures, in which case the DRI_VERSION won't correspond exactly
  60. * to the OS version!!!
  61.  
  62. DRI_VERSION    EQU    2
  63.  
  64.  STRUCTURE DrawInfo,0
  65.     UWORD    dri_Version     ; will be  DRI_VERSION
  66.     UWORD    dri_NumPens     ; guaranteed to be >= 9
  67.     APTR    dri_Pens     ; pointer to pen array
  68.     APTR    dri_Font     ; screen default font
  69.     UWORD    dri_Depth     ; (initial) depth of screen bitmap
  70.     ; from DisplayInfo database for initial display mode
  71.     UWORD    dri_ResolutionX
  72.     UWORD    dri_ResolutionY
  73.     ULONG    dri_Flags
  74.     ; New for V39: dri_CheckMark, dri_AmigaKey
  75.     APTR    dri_CheckMark    ; pointer to scaled checkmark image
  76.                  ; Will be NULL if DRI_VERSION < 2
  77.     APTR    dri_AmigaKey     ; pointer to scaled Amiga-key image
  78.                  ; Will be NULL if DRI_VERSION < 2
  79.    STRUCT       dri_longreserved,20
  80.  
  81. DRIF_NEWLOOK    EQU    $00000001 ; specified SA_Pens, full treatment
  82. DRIB_NEWLOOK    EQU    0
  83.  
  84.     ; rendering pen number indexes into DrawInfo.dri_Pens[]
  85.     ENUM
  86.     EITEM    DETAILPEN    ; compatible Intuition rendering pens
  87.     EITEM    BLOCKPEN,
  88.     EITEM    TEXTPEN        ; text on background (pen = 0)
  89.     EITEM    SHINEPEN    ; bright edge on bas-relief
  90.     EITEM    SHADOWPEN    ; dark edge
  91.     EITEM    FILLPEN        ; active window fill
  92.     EITEM    FILLTEXTPEN    ; text over FILLPEN
  93.     EITEM    BACKGROUNDPEN    ; always color 0
  94.     EITEM    HIGHLIGHTTEXTPEN  ; highlighted text, against BACKGROUNDPEN
  95. ; New for V39, only present if DRI_VERSION >= 2:
  96.     EITEM    BARDETAILPEN    ; text/detail in screen-bar/menus
  97.     EITEM    BARBLOCKPEN    ; screen-bar/menus fill
  98.     EITEM    BARTRIMPEN    ; trim under menu-bar
  99.  
  100.     EITEM    NUMDRIPENS
  101.  
  102. * New for V39:  It is sometimes useful to specify that a pen value
  103. * is to be the complement of color zero to three.  The "magic" numbers
  104. * serve that purpose:
  105.  
  106. PEN_C3        EQU    $FEFC        ; Complement of color 3
  107. PEN_C2        EQU    $FEFD        ; Complement of color 2
  108. PEN_C1        EQU    $FEFE        ; Complement of color 1
  109. PEN_C0        EQU    $FEFF        ; Complement of color 0
  110.  
  111. ; ======================================================================== 
  112. ; === Screen ============================================================= 
  113. ; ======================================================================== 
  114.  
  115. * VERY IMPORTANT NOTE ABOUT Screen->BitMap.  In the future, bitmaps
  116. * will need to grow.  The embedded instance of a bitmap in the screen
  117. * will no longer be large enough to hold the whole description of
  118. * the bitmap.
  119. *
  120. * YOU ARE STRONGLY URGED to use Screen->RastPort.BitMap in place of
  121. * &Screen->BitMap whenever and whereever possible.
  122.  
  123.  STRUCTURE Screen,0
  124.  
  125.     APTR sc_NextScreen        ; linked list of screens
  126.     APTR sc_FirstWindow        ; linked list Screen's Windows
  127.  
  128.     WORD sc_LeftEdge        ; parameters of the screen
  129.     WORD sc_TopEdge        ; parameters of the screen
  130.  
  131.     WORD sc_Width
  132.     WORD sc_Height
  133.  
  134.     WORD sc_MouseY        ; position relative to upper-left
  135.     WORD sc_MouseX        ; position relative to upper-left
  136.  
  137.     WORD sc_Flags        ; see definitions below
  138.  
  139.     APTR sc_Title        ; null-terminated Title text
  140.     APTR sc_DefaultTitle    ; for Windows without ScreenTitle
  141.  
  142.     ; Bar sizes for this Screen and all Window's in this Screen
  143.     BYTE sc_BarHeight
  144.     BYTE sc_BarVBorder
  145.     BYTE sc_BarHBorder
  146.     BYTE sc_MenuVBorder
  147.     BYTE sc_MenuHBorder
  148.     BYTE sc_WBorTop
  149.     BYTE sc_WBorLeft
  150.     BYTE sc_WBorRight
  151.     BYTE sc_WBorBottom
  152.  
  153.     BYTE sc_KludgeFill00    ; This is strictly for word-alignment 
  154.  
  155.     ; the display data structures for this Screen
  156.     APTR sc_Font            ; this screen's default font
  157.     STRUCT sc_ViewPort,vp_SIZEOF    ; describing the Screen's display
  158.     STRUCT sc_RastPort,rp_SIZEOF    ; describing Screen rendering
  159.     STRUCT sc_BitMap,bm_SIZEOF        ; SEE WARNING ABOVE!
  160.     STRUCT sc_LayerInfo,li_SIZEOF    ; each screen gets a LayerInfo
  161.  
  162.     APTR sc_FirstGadget
  163.  
  164.     BYTE sc_DetailPen        ; for bar/border/gadget rendering
  165.     BYTE sc_BlockPen        ; for bar/border/gadget rendering
  166.  
  167.     ; the following variable(s) are maintained by Intuition to support the
  168.     ; DisplayBeep() color flashing technique
  169.     WORD sc_SaveColor0
  170.  
  171.     ; This layer is for the Screen and Menu bars
  172.     APTR sc_BarLayer         ; was "BarLayer"
  173.  
  174.     APTR sc_ExtData
  175.  
  176.     APTR sc_UserData        ; general-purpose pointer to User data 
  177.  
  178.     LABEL sc_SIZEOF    ; actually, you have no business talking about
  179.             ; or relying on the size of a screen structure
  180.  
  181.  
  182. ; --- FLAGS SET BY INTUITION -------------------------------------------------
  183. ; The SCREENTYPE bits are reserved for describing various Screen types
  184. ; available under Intuition.  
  185. SCREENTYPE    EQU    $000F    ; all the screens types available 
  186. ; --- the definitions for the Screen Type ------------------------------------
  187. WBENCHSCREEN    EQU    $0001    ; identifies the Workbench screen
  188. PUBLICSCREEN    EQU    $0002    ; public shared (custom) screen
  189. CUSTOMSCREEN    EQU    $000F    ; for that special look
  190.  
  191. SHOWTITLE    EQU    $0010    ; this gets set by a call to ShowTitle() 
  192.  
  193. BEEPING        EQU    $0020    ; set when Screen is beeping 
  194.  
  195. CUSTOMBITMAP    EQU    $0040    ; if you are supplying your own BitMap
  196.  
  197. SCREENBEHIND    EQU    $0080    ; if you want your screen to open behind
  198.                 ; already open screens
  199.  
  200. SCREENQUIET    EQU    $0100    ; if you do not want Intuition to render
  201.                 ; into your screen (gadgets, title)
  202.  
  203. SCREENHIRES    EQU    $0200    ; do not use lowres gadgets (set by intuition)
  204.  
  205. STDSCREENHEIGHT    EQU    -1    ; supply in NewScreen.Height
  206. STDSCREENWIDTH    EQU    -1    ; supply in NewScreen.Width
  207.  
  208. NS_EXTENDED    EQU    $1000    ; means ns_Extenion is valid
  209. AUTOSCROLL    EQU    $4000    ; automatic scrolling of large raster
  210.  
  211. * New for V39:
  212. PENSHARED    EQU    $0400    ; Screen opener set {SA_SharePens,TRUE}
  213.  
  214. * Screen attribute tag ID's.  These are used in the ti_Tag field of
  215. * TagItem arrays passed to OpenScreenTagList() (or in the
  216. * ExtNewScreen.Extension field).
  217.  
  218. * Screen attribute tags.  Please use these versions, not those in
  219. * iobsolete.h.
  220.  
  221.  ENUM TAG_USER+33
  222. *
  223. *   these items specify items equivalent to fields in NewScreen
  224.     EITEM SA_Left    ; traditional screen positions    and dimensions
  225.     EITEM SA_Top
  226.     EITEM SA_Width
  227.     EITEM SA_Height
  228.     EITEM SA_Depth    ; screen bitmap depth
  229.     EITEM SA_DetailPen    ; serves as default for windows, too
  230.     EITEM SA_BlockPen
  231.     EITEM SA_Title    ; default screen title
  232.  
  233.     EITEM SA_Colors    ; ti_Data is an array of struct ColorSpec,
  234.             ; terminated by ColorIndex = -1.  Specifies
  235.             ; initial screen palette colors.
  236.             ; Also see SA_Colors32 for use under V39.
  237.  
  238.     EITEM SA_ErrorCode    ; ti_Data points to LONG error code (values below)
  239.     EITEM SA_Font    ; equiv. to NewScreen.Font
  240.     EITEM SA_SysFont    ; Selects one of the preferences system fonts:
  241.             ;    0 - old DefaultFont, fixed-width
  242.             ;    1 - WB Screen preferred font
  243.  
  244.  
  245.     EITEM SA_Type    ; ti_Data is PUBLICSCREEN or CUSTOMSCREEN.  For other
  246.             ; fields of NewScreen.Type, see individual tags,
  247.             ; eg. SA_Behind, SA_Quiet.
  248.  
  249.     EITEM SA_BitMap    ; ti_Data is pointer to custom BitMap.    This
  250.             ; implies type of CUSTOMBITMAP
  251.  
  252.     EITEM SA_PubName    ; presence of this tag means that the screen
  253.             ; is to be a public screen.  Please specify
  254.             ; BEFORE the two tags below
  255.  
  256.     EITEM SA_PubSig
  257.     EITEM SA_PubTask    ; Task ID and signal for being notified that
  258.             ; the last window has closed on a public screen.
  259.  
  260.  
  261.     EITEM SA_DisplayID    ; ti_Data is new extended display ID from
  262.             ; <graphics/displayinfo.i> (V37) or from
  263.             ; <graphics/modeid.i> (V39 and up)
  264.  
  265.     EITEM SA_DClip    ; ti_Data points to a rectangle which defines
  266.             ; screen display clip region
  267.  
  268.     EITEM SA_Overscan    ; Set to one of the OSCAN_
  269.             ; specifiers below to get a system standard
  270.             ; overscan region for your display clip,
  271.             ; screen dimensions (unless otherwise specified),
  272.             ; and automatically centered position (partial
  273.             ; support only so far).
  274.  
  275.     EITEM SA_Obsolete1    ; obsolete S_MONITORNAME
  276.  
  277. *   booleans *
  278.     EITEM SA_ShowTitle    ; boolean equivalent to flag SHOWTITLE
  279.     EITEM SA_Behind    ; boolean equivalent to flag SCREENBEHIND
  280.     EITEM SA_Quiet    ; boolean equivalent to flag SCREENQUIET
  281.     EITEM SA_AutoScroll    ; boolean equivalent to flag AUTOSCROLL
  282.     EITEM SA_Pens    ; array as in DrawInfo, terminated by -1
  283.     EITEM SA_FullPalette ; boolean: initialize color table to entire
  284.              ;  preferences palette (32 for V36), rather
  285.              ; than compatible pens 0-3, 17-19, with
  286.              ; remaining palette as returned by GetColorMap()
  287.  
  288.  
  289.     EITEM SA_ColorMapEntries ; New for V39:
  290.             ; Allows you to override the number of entries
  291.             ; in the ColorMap for your screen.  Intuition
  292.             ; normally allocates (1<<depth) or 32, whichever
  293.             ; is more, but you may require even more if you
  294.             ; use certain V39 graphics.library features
  295.             ; (eg. palette-banking).
  296.  
  297.     EITEM SA_Parent    ; New for V39:
  298.             ; ti_Data is a pointer to a "parent" screen to
  299.             ; attach this one to.  Attached screens slide
  300.             ; and depth-arrange together.
  301.  
  302.     EITEM SA_Draggable    ; New for V39:
  303.             ; Boolean tag allowing non-draggable screens.
  304.             ; Do not use without good reason!
  305.             ; (Defaults to TRUE).
  306.  
  307.     EITEM SA_Exclusive    ; New for V39:
  308.             ; Boolean tag allowing screens that won't share
  309.             ; the display. Use sparingly! (Defaults to FALSE).
  310.  
  311.     EITEM SA_SharePens    ; New for V39:
  312.             ; For those pens in the screen's DrawInfo->dri_Pens,
  313.             ; Intuition obtains them in shared mode (see
  314.             ; graphics.library/ObtainPen()).  For compatibility,
  315.             ; Intuition obtains the other pens of a public
  316.             ; screen as PEN_EXCLUSIVE.  Screens that wish to
  317.             ; manage the pens themselves should generally set
  318.             ; this tag to TRUE.  This instructs Intuition to
  319.             ; leave the other pens unallocated.
  320.  
  321.     EITEM SA_BackFill    ; New for V39:
  322.             ; provides a "backfill hook" for your screen's
  323.             ; Layer_Info.
  324.             ; See layers.library/InstallLayerInfoHook()
  325.  
  326.     EITEM SA_Interleaved    ; New for V39:
  327.             ; Boolean tag requesting that the bitmap
  328.             ; allocated for you be interleaved.
  329.             ; (Defaults to FALSE).
  330.  
  331.     EITEM SA_Colors32    ; New for V39:
  332.             ; Tag to set the screen's initial palette colors
  333.             ; at 32 bits-per-gun.  ti_Data is a pointer
  334.             ; to a table to be passed to the
  335.             ; graphics.library/LoadRGB32() function.
  336.             ; This format supports both runs of color
  337.             ; registers and sparse registers.  See the
  338.             ; autodoc for that function for full details.
  339.             ; Any color set here has precedence over
  340.             ; the same register set by SA_Colors.
  341.  
  342.     EITEM SA_VideoControl    ; New for V39:
  343.             ; ti_Data is a pointer to a taglist that Intuition
  344.             ; will pass to graphics.library/VideoControl(),
  345.             ; upon opening the screen.
  346.  
  347.     EITEM SA_FrontChild    ; New for V39:
  348.             ; ti_Data is a pointer to an already open screen
  349.             ; that is to be the child of the screen being
  350.             ; opened.  The child screen will be moved to the
  351.             ; front of its family.
  352.  
  353.     EITEM SA_BackChild    ; New for V39:
  354.             ; ti_Data is a pointer to an already open screen
  355.             ; that is to be the child of the screen being
  356.             ; opened.  The child screen will be moved to the
  357.             ; back of its family.
  358.  
  359.     EITEM SA_LikeWorkbench ; New for V39:
  360.              ; Set ti_Data to 1 to request a screen which
  361.              ; is just like the Workbench.    This gives
  362.              ; you the same screen mode, depth, size,
  363.              ; colors, etc., as the Workbench screen.
  364.  
  365.     EITEM SA_Reserved    ; Reserved for private Intuition use
  366.  
  367.  
  368. * OpenScreen error codes, which are returned in the (optional) LONG
  369. * pointed to by ti_Data for the SA_ErrorCode tag item
  370.  
  371. OSERR_NOMONITOR        EQU (1)    ; named monitor spec not available
  372. OSERR_NOCHIPS        EQU (2)    ; you need newer custom chips
  373. OSERR_NOMEM        EQU (3)    ; couldn't get normal memory
  374. OSERR_NOCHIPMEM        EQU (4)    ; couldn't get chipmem
  375. OSERR_PUBNOTUNIQUE    EQU (5)    ; public screen name already used
  376. OSERR_UNKNOWNMODE    EQU (6)    ; don't recognize mode asked for
  377. OSERR_TOODEEP        EQU (7)    ; Screen deeper than HW supports
  378. OSERR_ATTACHFAIL    EQU (8)    ; Failed to attach screens
  379. OSERR_NOTAVAILABLE    EQU (9) ; Mode not available for other reason
  380.  
  381. ; ======================================================================== 
  382. ; === NewScreen ========================================================== 
  383. ; ======================================================================== 
  384. ; NOTE: to use Extension field, you need to use ExtNewScreen, below
  385.  STRUCTURE NewScreen,0
  386.  
  387.     WORD ns_LeftEdge        ; initial Screen dimensions
  388.     WORD ns_TopEdge        ; initial Screen dimensions
  389.     WORD ns_Width        ; initial Screen dimensions
  390.     WORD ns_Height        ; initial Screen dimensions
  391.     WORD ns_Depth        ; initial Screen dimensions
  392.  
  393.     BYTE ns_DetailPen        ; default rendering pens (for Windows too)
  394.     BYTE ns_BlockPen        ; default rendering pens (for Windows too)
  395.  
  396.     WORD ns_ViewModes        ; display "modes" for this Screen
  397.  
  398.     WORD ns_Type        ; Intuition Screen Type specifier
  399.  
  400.     APTR ns_Font        ; default font for Screen and Windows
  401.  
  402.     APTR ns_DefaultTitle    ; Title when Window doesn't care
  403.  
  404.     APTR ns_Gadgets        ; UNUSED:  Leave this NULL
  405.  
  406.     ; if you are opening a CUSTOMSCREEN and already have a BitMap
  407.     ; that you want used for your Screen, you set the flags CUSTOMBITMAP in
  408.     ; the Types variable and you set this variable to point to your BitMap
  409.     ; structure.  The structure will be copied into your Screen structure,
  410.     ; after which you may discard your own BitMap if you want
  411.     APTR ns_CustomBitMap
  412.  LABEL      ns_SIZEOF
  413.  
  414. ; For compatibility reasons, we need a new structure for extending
  415. ; NewScreen.  Use this structure is you need to use the new Extension
  416. ; field.
  417. ; NOTE WELL: this structure may be extended again in the future.
  418. ;Writing code which depends on its size is not allowed.
  419.  
  420.  STRUCTURE ExtNewScreen,ns_SIZEOF
  421.  
  422.     APTR ens_Extension        ; struct TagItem *
  423.                 ; more specification data, scanned if
  424.                 ; NS_EXTENDED is set in ns_Type
  425.  
  426.  LABEL      ens_SIZEOF
  427.  
  428. * === Overscan Types ===
  429. OSCAN_TEXT    EQU    1    ; entirely visible
  430. OSCAN_STANDARD    EQU    2    ; just past edges
  431. OSCAN_MAX    EQU    3    ; as much as possible
  432. OSCAN_VIDEO    EQU    4    ; even more than is possible
  433.  
  434.  
  435. * === Public Shared Screen Node ===
  436.  
  437. * This is the representative of a public shared screen.
  438. * This is an internal data structure, but some functions may
  439. * present a copy of it to the calling application.  In that case,
  440. * be aware that the screen pointer of the structure can NOT be
  441. * used safely, since there is no guarantee that the referenced
  442. * screen will remain open and a valid data structure.
  443.  
  444.  STRUCTURE PubScreenNode,LN_SIZE
  445.     APTR    psn_Screen    ; pointer to screen itself
  446.     UWORD    psn_Flags    ; below
  447.     WORD    psn_Size    ; includes name buffer size
  448.     WORD    psn_VisitorCount ; how many visitor windows
  449.     APTR    psn_SigTask    ; who to signal when visitors gone
  450.     UBYTE    psn_SigBit    ; which signal
  451.     UBYTE    psn_Pad1    ; word align
  452.  LABEL        psn_SIZEOF
  453.  
  454. * psn_Flags values
  455. PSNF_PRIVATE    EQU    $0001
  456.  
  457. * NOTE: Due to a bug in NextPubScreen(), make sure your buffer
  458. * actually has MAXPUBSCREENNAME+1 characters in it!
  459.  
  460. MAXPUBSCREENNAME EQU    139    ; names no longer, please
  461.  
  462. ; pub screen modes
  463. SHANGHAI    EQU    $0001    ; put workbench windows on pub screen
  464. POPPUBSCREEN    EQU    $0002    ; pop pub screen to front when visitor opens
  465.  
  466. * New for V39:    Intuition has new screen depth-arrangement and movement
  467. * functions called ScreenDepth() and ScreenPosition() respectively.
  468. * These functions permit the old behavior of ScreenToFront(),
  469. * ScreenToBack(), and MoveScreen().  ScreenDepth() also allows
  470. * independent depth control of attached screens.  ScreenPosition()
  471. * optionally allows positioning screens even though they were opened
  472. * {SA_Draggable,FALSE}.
  473.  
  474. * For ScreenDepth(), specify one of SDEPTH_TOFRONT or SDEPTH_TOBACK,
  475. * and optionally also SDEPTH_INFAMILY.
  476. *
  477. * NOTE: ONLY THE OWNER OF THE SCREEN should ever specify
  478. * SDEPTH_INFAMILY.  Commodities, "input helper" programs,
  479. * or any other program that did not open a screen should never
  480. * use that flag.  (Note that this is a style-behavior
  481. * requirement;    there is no technical requirement that the
  482. * task calling this function need be the task which opened
  483. * the screen).
  484.  
  485. SDEPTH_TOFRONT            EQU    0    ; Bring screen to front
  486. SDEPTH_TOBACK        EQU    1    ; Send screen to back
  487. SDEPTH_INFAMILY        EQU    2    ; Move an attached screen with
  488.                     ; respect to other screens of
  489.                     ; its family
  490.  
  491. * Here's an obsolete name equivalent to SDEPTH_INFAMILY:
  492. SDEPTH_CHILDONLY    EQU    SDEPTH_INFAMILY
  493.  
  494.  
  495. * For ScreenPosition(), specify one of SPOS_RELATIVE, SPOS_ABSOLUTE,
  496. * or SPOS_MAKEVISIBLE to describe the kind of screen positioning you
  497. * wish to perform:
  498. *
  499. * SPOS_RELATIVE: The x1 and y1 parameters to ScreenPosition() describe
  500. *    the offset in coordinates you wish to move the screen by.
  501. * SPOS_ABSOLUTE: The x1 and y1 parameters to ScreenPosition() describe
  502. *    the absolute coordinates you wish to move the screen to.
  503. * SPOS_MAKEVISIBLE: (x1,y1)-(x2,y2) describes a rectangle on the
  504. *    screen which you would like autoscrolled into view.
  505. * You may additionally set SPOS_FORCEDRAG along with any of the
  506. * above.  Set this if you wish to reposition an {SA_Draggable,FALSE}
  507. * screen that you opened.
  508. *
  509. * NOTE: ONLY THE OWNER OF THE SCREEN should ever specify
  510. * SPOS_FORCEDRAG.  Commodities, "input helper" programs,
  511. * or any other program that did not open a screen should never 
  512. * use that flag.
  513.  
  514. SPOS_RELATIVE        EQU    0    ; Coordinates are relative
  515.  
  516. SPOS_ABSOLUTE        EQU    1    ; Coordinates are expressed as
  517.                     ; absolutes, not relatives.
  518.  
  519. SPOS_MAKEVISIBLE    EQU    2    ; Coordinates describe a box on
  520.                     ; the screen you wish to be
  521.                     ; made visible by autoscrolling
  522.  
  523. SPOS_FORCEDRAG        EQU    4    ; Move non-draggable screen
  524.  
  525. * New for V39: Intuition supports double-buffering in screens,
  526. * with friendly interaction with menus and certain gadgets.
  527. * For each buffer, you need to get one of these structures
  528. * from the AllocScreenBuffer() call.  Never allocate your
  529. * own ScreenBuffer structures!
  530. *
  531. * The sb_DBufInfo field is for your use.  See the graphics.library
  532. * AllocDBufInfo() autodoc for details.
  533.  
  534.  STRUCTURE ScreenBuffer,0
  535.     APTR sb_BitMap        ; BitMap of this buffer
  536.     APTR sb_DBufInfo        ; DBufInfo for this buffer
  537.  LABEL sb_SIZEOF
  538.  
  539.  
  540. * These are the flags that may be passed to AllocScreenBuffer().
  541.  
  542. SB_SCREEN_BITMAP    EQU    1
  543. SB_COPY_BITMAP        EQU    2
  544.  
  545. * Include obsolete identifiers:
  546.     IFND    INTUITION_IOBSOLETE_I
  547.     INCLUDE "intuition/iobsolete.i"
  548.     ENDC
  549.  
  550.     ENDC
  551.